package com.decent.common.entity.manager;

import com.decent.common.enums.CommonStatusEnum;
import com.decent.common.validator.operate.Add;
import com.decent.common.validator.operate.Delete;
import com.decent.common.validator.operate.Update;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 角色
 *
 * @author wangyan
 **/
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class SystemRole implements Serializable {
    private static final long serialVersionUID = -7911309301559943110L;
    /**
     * 主键id
     */
    @NotNull(message = "请选择要操作的角色", groups = {Update.class, Delete.class, GrantMenu.class})
    private Long id;

    /**
     * 名称
     */
    @NotBlank(message = "角色名称不能为空", groups = {Add.class})
    @Length(max = 50, message = "请输入50字以内的角色名称", groups = {Add.class, Update.class})
    private String roleName;

    /**
     * 编码
     */
    private String roleCode;

    /**
     * 序号
     */
    private Integer roleSort;

    /**
     * 备注
     */
    private String remark;

    /**
     * 状态
     */
    private CommonStatusEnum roleStatus;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 创建人
     */
    private String creator;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;

    /**
     * 更新人
     */
    private String lastModifier;

    /**
     * 绑定资源
     */
    public interface GrantMenu {
    }
}
